/*!
 * \file MediaStateEstablished.h
 * \brief State where connection is opened and media transmission is ongoing
 */

#ifndef MGW_MEDIA_STATE_ESTABLISHED_H
#define MGW_MEDIA_STATE_ESTABLISHED_H

#include "MediaStateBase.h"
#include "MediaGenerator.h"

namespace tsc
{
namespace mgw
{

/**
 * Normal working state of this generator. Media connection is established
 * and transmission to user client is ongoing
 */
class MediaStateEstablished : public MediaStateBase
{
public:

	static MediaStateEstablished* instance();

protected:

	virtual ~MediaStateEstablished();

    virtual void
    handleEventReleaseConnection(
        MediaGenerator* gen,
        MediaEventReleaseConnection* event,
        EventData*& eventData);

private:
	MediaStateEstablished();

};

} // namespace mgw
} // namespace tsc

#endif // MGW_MEDIA_STATE_ESTABLISHED_H
